package org.example.controller;

import org.example.common.JsonCode;
import org.example.entity.Student;
import org.example.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 *
 */
@RestController
@RequestMapping("/student123")
public class StudentController {
    @Autowired
    StudentService studentService;

    // 根据id查单条
    @GetMapping("/getById")
    public Student getById(String id){
        Student s = studentService.getById(id);
        return s;
    }
    // 查询全部信息
    @GetMapping("/getAll")
    public List<Student> getAll(){
        return studentService.getAll();
    }
    /*
        约定：

        添加/修改/删除操作 后
        需要为前端提供的信息有：
            code 200 表示成功
            msg 表示响应消息

        查询操作 后
         需要为前端提供的信息有：
            code 200 表示成功
            data 具体查询数据

     */

    /*
        浏览器：?id=A0001&name=zs&age=23
        形参接收方式1：add(String id,String name,String age) -- 可读性强
        形参接收方式2：add(Student s) 底层s.setId s.setName s.setAge -- 方便 -- 一般情况用这种比较多
        形参接收方式3：add(@RequestBody Student s) @RequestBody用来接收json数据
     */

    // 增加
    /*@PostMapping("/insert")
    public String insert(String id,String name,Integer age){
        Student s = new Student(id, name, age);
        studentService.insert(s);
        return "success";
    }*/
    /*@PostMapping("/insert")
    public String insert(@RequestBody Student s){
        studentService.insert(s);
        return "success";
    }*/
    @PostMapping("/insert")
    public JsonCode insert(@RequestBody Student s){
        studentService.insert(s);
        return JsonCode.getJson();
    }
    // 删除
    @PostMapping("/delete")
    public JsonCode delete(String id){
        studentService.delete(id);
        return JsonCode.getJson();
    }
    // 修改
    @PostMapping("/update")
    public JsonCode update(Student s){
        studentService.update(s);
        return JsonCode.getJson();
    }
}
